home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 4 / Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso / Development / Source / Macintosh Tracker Source / Tracker Client Folder / Core 18⁄March⁄1994 / Memory.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-04-03  |  1.8 KB  |  66 lines  |  [TEXT/KAHL]

  1. /* Memory.h */
  2.  
  3. #pragma once
  4.  
  5. typedef long (*GrowZoneFuncPtrType)(ulong);
  6.  
  7. /* if the following symbol is defined in the header, then all allocated handles and */
  8. /* pointers will be added to a table to see if they are being disposed twice. */
  9. /* #define MEMDEBUG */
  10.  
  11. #ifdef MEMDEBUG
  12.     #ifndef DEBUG
  13.         #error MEMDEBUG can't be enabled if DEBUG is disabled!
  14.     #endif
  15.     Handle    DupSysHandle(Handle Original);
  16.     void        SetTag(void* TheRef, char* TheTag);
  17.     void        CheckHandleExistence(Handle TheHandle);
  18.     void        CheckPtrExistence(Ptr ThePointer);
  19. #else
  20.     #define DupSysHandle(Original) HDuplicate(Original)
  21.     #define SetTag(crud1,crud2)
  22.     #ifndef DEBUG
  23.         #define CheckHandleExistence(apadap)
  24.         #define CheckPtrExistence(brapp)
  25.     #else
  26.         void        CheckHandleExistence(Handle TheHandle);
  27.         void        CheckPtrExistence(Ptr ThePointer);
  28.     #endif
  29. #endif
  30.  
  31. MyBoolean    FirstMemCacheValid(void);
  32. MyBoolean    SecondMemCacheValid(void);
  33. void            InitMemory(void);
  34. void            FlushMemory(void);
  35. Handle        AllocHandle(ulong Size);
  36. Handle        AllocHandleCanFail(ulong Size);
  37. Ptr                AllocPtr(ulong Size);
  38. Ptr                AllocPtrCanFail(ulong Size);
  39. void            ReleaseHandle(Handle TheHand);
  40. void            ReleasePtr(Ptr ThePtr);
  41. void            InstallGrowZone(GrowZoneFuncPtrType MyGrowZone);
  42. void            SetMemCacheRestore(MyBoolean Flag);
  43. void            RestoreMemCache(void);
  44.  
  45. #ifdef DEBUG
  46.     ulong            HandleSize(Handle h);
  47.     ulong            PtrSize(Ptr p);
  48.     void            CheckHeap(void);
  49.     void            SetTopOfStack(char* ATopVar);
  50.     void            StackSizeTest(void);
  51. #else
  52.     #pragma parameter __D0 HandleSize(__A0)
  53.     pascal ulong HandleSize(Handle h) = 0xA025;
  54.     #pragma parameter __D0 PtrSize(__A0)
  55.     pascal ulong PtrSize(Ptr p) = 0xA021;
  56.     #define CheckHeap()
  57.     #define SetTopOfStack(silly)
  58.     #define StackSizeTest()
  59. #endif
  60.  
  61. #ifndef COMPILING_MEMORY_C
  62.     EXECUTE(extern long NumHandlesAllocated;)
  63.     EXECUTE(extern long NumPointersAllocated;)
  64.     EXECUTE(extern long MaxNumHandlesAllocated;)
  65. #endif
  66.